using System;

namespace BEGDC.CC.BL.Workflow
{
    /// <summary>
    /// Summary description for WorkflowConst.
    /// </summary>
    public class WorkflowErrorCode
    {
        public const string DEFI_PROCESS = "02.0001";
        public const string DEFI_INSTANCE = "02.0002";

        public const string EXEC_START = "02.0011";
        public const string EXEC_PERFORM = "02.0012";
        public const string EXEC_TASKLIST = "02.0013";
        public const string EXEC_DRAWBACK = "02.0014";
        public const string EXEC_MOVE = "02.0015";
        public const string EXEC_DELEGATE = "02.0016";

        public const string SECU_AUTH = "02.0021";

        public const string TASK_ASSIGN = "02.0031";
    }

    public class WorkTransition
    {
        public const string Approve = "Approve";
        public const string Reject = "Reject";
        public const string Pass = "Pass";
        public const string Loss = "Loss";

        public const string Submit = "Submit";
        public const string Check = "Check";
        public const string End = "End";
        public const string Draft = "Draft";

        //OCV OCR Same Steps
        public const string OC_Lv4Approval = "Lv4Approval";
        public const string OC_Lv3Approval = "Lv3Approval";
        public const string OC_Lv2Approval = "Lv2Approval";
        public const string OC_Lv1Approval = "Lv1Approval";

        //CR Status
        public const string CR_ReRequest = "ReRequest";
        public const string CR_Request = "Request";
        public const string CR_AssignApp = "AssignApp";
        public const string CR_CheckApp = "CheckApp";
        public const string CR_CATDirectorApproval = "CATDirectorApproval";
        public const string CR_CATVPApproval = "CATVPApproval";
        public const string CR_PSOHeadApproval = "PSOHeadApproval";
        //		public const string CR_BDDirectorApproval = "BDDirectorApproval";
        //		public const string CR_BDHeadApproval = "BDHeadApproval";
        public const string CR_DeptDirectorApproval = "DeptDirectorApproval";
        public const string CR_DeptHeadApproval = "DeptHeadApproval";
        public const string CR_FNCApproval = "FNCApproval";
        public const string CR_CRSurvey = "CRSurvey";
        public const string CR_CloseApp = "CloseApp";

        //Out Shanghai CR Status
        public const string CO_ReRequest = "COReRequest";
        public const string CO_Request = "CORequest";
        public const string CO_AssignApp = "COAssignApp";
        public const string CO_CheckApp = "COCheckApp";
        public const string CO_CloseApp = "COCloseApp";
        public const string CO_PSOApprove = "COPSOApprove";

        //OCR Status
        public const string OCR_ReRequest = "ReRequest";
        public const string OCR_Request = "Request";
        public const string OCR_ReportTo = "ReportTo";
        public const string OCR_AssignApp = "AssignApp";
        public const string OCR_CheckApp = "CheckApp";
        public const string OCR_CostCenterHeadApproval = "CostCenterHeadApproval";
        public const string OCR_Lv4Approval = OC_Lv4Approval;
        public const string OCR_Lv3Approval = OC_Lv3Approval;
        public const string OCR_Lv2Approval = OC_Lv2Approval;
        public const string OCR_Lv1Approval = OC_Lv1Approval;
        public const string OCR_SSMEHeadApproval = "SSMEHeadApproval";
        public const string OCR_DeptHeadApproval = "DeptHeadApproval";
        public const string OCR_FNCApproval = "FNCApproval";
        public const string OCR_OCRSurvey = "OCRSurvey";
        public const string OCR_CloseApp = "CloseApp";

        //EBD Status
        public const string EBD_ReRequest = "ReRequest";
        public const string EBD_Request = "Request";
        public const string EBD_ReportTo = "ReportTo";
        public const string EBD_AssignApp = "AssignApp";
        public const string EBD_CheckApp = "CheckApp";
        public const string EBD_CostCenterHeadApproval = "CostCenterHeadApproval";
        public const string EBD_EBDHeadApproval = "EBDHeadApproval";
        public const string EBD_DeptHeadApproval = "DeptHeadApproval";
        public const string EBD_FNCApproval = "FNCApproval";
        public const string EBD_EBDSurvey = "EBDSurvey";
        public const string EBD_CloseApp = "CloseApp";

        //added by zhaosong
        //ESC Status
        public const string ESC_ReRequest = "ReRequest";
        public const string ESC_Request = "Request";
        public const string ESC_ReportTo = "ReportTo";
        public const string ESC_AssignApp = "AssignApp";
        public const string ESC_CheckApp = "CheckApp";
        public const string ESC_CostCenterHeadApproval = "CostCenterHeadApproval";
        public const string ESC_ESCHeadApproval = "ESCHeadApproval";
        public const string ESC_DeptHeadApproval = "DeptHeadApproval";
        public const string ESC_FNCApproval = "FNCApproval";
        public const string ESC_ESCSurvey = "ESCSurvey";
        public const string ESC_CloseApp = "CloseApp";

        //EBDCV Status
        public const string EBDCV_Apply = "Request";
        public const string EBDCV_ReApply = "ReRequest";
        public const string EBDCV_ReportTo = "ReportTo";
        public const string EBDCV_Assignment = "AssignApp";
        public const string EBDCV_Check = "CheckApp";
        public const string EBDCV_CostCenterHeadApproval = "CostCenterHeadApproval";
        public const string EBDCV_DepartmentVPApproval = "DepartmentVPApproval";
        public const string EBDCV_EBDEVPApproval = "EBDHeadApproval";
        public const string EBDCV_DepartmentHeadApproval = "DepartmentHeadApproval";
        public const string EBDCV_DepartmentFNCApproval = "DepartmentFNCApproval";
        public const string EBDCV_Feedback = "Feedback";
        public const string EBDCV_EBDCVSurvey = "EBDCVSurvey";
        public const string EBDCV_Close = "CloseApp";

        //ESCCV Status
        public const string ESCCV_Apply = "Request";
        public const string ESCCV_ReApply = "ReRequest";
        public const string ESCCV_ReportTo = "ReportTo";
        public const string ESCCV_Assignment = "AssignApp";
        public const string ESCCV_Check = "CheckApp";
        public const string ESCCV_CostCenterHeadApproval = "CostCenterHeadApproval";
        public const string ESCCV_DepartmentVPApproval = "DepartmentVPApproval";
        public const string ESCCV_ESCEVPApproval = "ESCHeadApproval";
        public const string ESCCV_DepartmentHeadApproval = "DepartmentHeadApproval";
        public const string ESCCV_DepartmentFNCApproval = "DepartmentFNCApproval";
        public const string ESCCV_Feedback = "Feedback";
        public const string ESCCV_ESCCVSurvey = "ESCCVSurvey";
        public const string ESCCV_Close = "CloseApp";

        //CV Status
        public const string CV_Apply = "Request";
        public const string CV_ReApply = "ReRequest";
        public const string CV_Assignment = "AssignApp";
        public const string CV_Check = "CheckApp";
        public const string CV_PSOApprove = "PSOApprove";
        public const string CV_CATDIRECTORApprove = "CATDirectorApprove";
        public const string CV_CODDirectorApprove = "CODDirectorApprove";
        public const string CV_CODVPApprove = "CODVPApprove";
        public const string CV_Feedback = "Feedback";
        public const string CV_Close = "Close";

        //OCV Status
        public const string OCV_Apply = "Request";
        public const string OCV_ReApply = "ReRequest";
        public const string OCV_ReportTo = "ReportTo";
        public const string OCV_Assignment = "AssignApp";
        public const string OCV_Check = "CheckApp";
        public const string OCV_CostCenterHeadApproval = "CostCenterHeadApproval";
        public const string OCV_Lv4Approval = OC_Lv4Approval;
        public const string OCV_Lv3Approval = OC_Lv3Approval;
        public const string OCV_Lv2Approval = OC_Lv2Approval;
        public const string OCV_Lv1Approval = OC_Lv1Approval;
        public const string OCV_DepartmentVPApproval = "DepartmentVPApproval";
        public const string OCV_SSMEEVPApproval = "SSMEHeadApproval";
        public const string OCV_DepartmentHeadApproval = "DepartmentHeadApproval";
        public const string OCV_DepartmentFNCApproval = "DepartmentFNCApproval";
        public const string OCV_Feedback = "Feedback";
        public const string OCV_OCVSurvey = "OCVSurvey";
        public const string OCV_Close = "CloseApp";

        //EV Status
        public const string EV_Request = "Request";
        public const string EV_ReRequest = "ReRequest";
        public const string EV_Assign = "AssignApp";
        public const string EV_Check = "CheckApp";
        public const string EV_CATDirectorApprove = "CATDirectorApprove";
        public const string EV_PSOApprove = "PSOApprove";
        public const string EV_MeetingMinutes = "MeetingMinutes";
        public const string EV_CATApproveMM = "CATApproveMM";
        public const string EV_PSOApproveMM = "PSOApproveMM";
        public const string EV_CODStaffCheckMM = "StaffCheckMM";
        public const string EV_Close = "Close";
        public const string EV_End = "End";

        //AP Status
        public const string AP_Request = "APRequest";
        public const string AP_Fill = "FillAPRequest";
        public const string AP_Close = "EndAP";
        public const string AP_End = "End";
    }

    public class UserRole
    {
        public const string Applicant = "Applicant";
        public const string CVApplicant = "CVApplicant";
        public const string CRApplicant = "CRApplicant";
        public const string COApplicant = "COApplicant";
        public const string EVApplicant = "EVApplicant";
        public const string OCOApplicant = "OCOApplicant";
        public const string EBDApplicant = "EBDApplicant";
        public const string ESCApplicant = "ESCApplicant";

        public const string CODMgr = "CODMgr";
        public const string CVCODMgr = "CVCODMgr";
        public const string CRCODMgr = "CRCODMgr";
        public const string COCODManager = "COCODMgr";
        public const string EVCODManager = "EVCODMgr";
        public const string OCRMgr = "OCRMgr";
        public const string OCVMgr = "OCVMgr";
        public const string EBDCRMgr = "EBDCRMgr";
        //added by zhaosong
        public const string ESCCRMgr = "ESCCRMgr";
        public const string EBDCVMgr = "EBDCVMgr";
        public const string ESCCVMgr = "ESCCVMgr";

        public const string CODStaff = "CODStaff";
        public const string CRCODStaff = "CRCODStaff";
        public const string COCODStaff = "COCODStaff";
        public const string EVCODStaff = "EVCODStaff";
        public const string CVCODStaff = "CVCODStaff";
        public const string OCRStaff = "OCRStaff";
        public const string OCVStaff = "OCVStaff";
        public const string EBDCRStaff = "EBDCRStaff";
        //added by zhaosong
        public const string ESCCRStaff = "ESCCRStaff";
        public const string EBDCVStaff = "EBDCVStaff";
        public const string ESCCVStaff = "ESCCVStaff";

        //		public const string BDDirector = "BDDirector";
        //		public const string BDHead = "BDHead";
        public const string DeptDirector = "DeptDirector";
        public const string DeptHead = "DeptHead";
        public const string CATDirector = "CATDirector";
        public const string CATVP = "CATVP";
        public const string CODDirector = "CODDirector";
        public const string CODVP = "CODVP";
        public const string PSO = "PSO";
        public const string FNC = "FNC";
        public const string SSMEHead = "SSMEHead";
        public const string EBDHead = "EBDHead";
        public const string ESCHead = "ESCHead";
        public const string CostCenterHead = "CostCenterHead";

        //		public const string DeptVP = "DeptVP";

        public const string APContributor = "APContributor";
        public const string APOwner = "APOwner";
        public const string Assistant = "Assistant";
        public const string BusinessAdmin = "BusinessAdmin";
        public const string OCOBusinessAdmin = "OCOBusinessAdmin";
        public const string EBDBusinessAdmin = "EBDBusinessAdmin";
        public const string ESCBusinessAdmin = "ESCBusinessAdmin";

        //LV Approver
        public const string Lv1Approver = "Lv1Approver";
        public const string Lv2Approver = "Lv2Approver";
        public const string Lv3Approver = "Lv3Approver";
        public const string Lv4Approver = "Lv4Approver";
    }

    public class WorkflowTypes
    {
        public const string CR = "CR";
        public const string OCR = "OCR";
        public const string CO = "CO";
        public const string CV = "CV";
        public const string EV = "EV";
        public const string AP = "AP";
        public const string OCV = "OCV";
        public const string EBD = "EBD";
        //added by zhaosong
        public const string ESC = "ESC";
        public const string EBDCV = "EBDCV";
        public const string ESCCV = "ESCCV";
        public const string EZV = "EZV";
        public const string AllOCR = "AllOCR";
        public const string AllOCV = "AllOCV";
    }

    public class Action
    {
        public const string Submit = "Submit";
        public const string Reject = "Reject";
        public const string Query = "Query";
        public const string ReplyQuery = "ReplyQuery";
        public const string Drawback = "Drawback";
        public const string Suspend = "Suspend";
        public const string Resume = "Resume";
        public const string Archive = "Archive";
        public const string Callback = "Callback";
        public const string Cancel = "Cancel";
        public const string Reassign = "Reassign";
        public const string ReportToCheck = "ReportToApprove";
    }

    public enum FlowTypes
    {
        CR,
        CV,
        EV,
        CO,
        OCR,
        OCV,
        EBD,
        //added by zhaosong
        ESC, EBDCV, ESCCV
    }

    public class CommonActionList
    {
        public const string Resume = "Resume";
        public const string Suspend = "Suspend";
        public const string Callback = "Callback";
        public const string Drawback = "Drawback";
        public const string Cancel = "Cancel";
        public const string Reassign = "Reassign";
        public const string Copy = "Copy";
    }

    public class CRTransitionList
    {
        public const string Save = "Save";
        public const string Copy = "Copy";
        public const string Query = "Query";
        public const string Reply = "Reply";
        public const string Approve = "Approve";
        public const string Reject = "Reject";
        public const string Assign = "Assign";
        public const string Check = "Check";
        public const string Submit = "Submit";
        public const string Close = "Close";
    }

    public class EBDTransitionList
    {
        public const string Save = "Save";
        public const string Copy = "Copy";
        public const string Query = "Query";
        public const string Reply = "Reply";
        public const string Approve = "Approve";
        public const string Reject = "Reject";
        public const string Assign = "Assign";
        public const string Check = "Check";
        public const string Submit = "Submit";
        public const string Close = "Close";
        public const string ReportTo = "ReportTo";
    }

    //added by zhaosong
    public class ESCTransitionList
    {
        public const string Save = "Save";
        public const string Copy = "Copy";
        public const string Query = "Query";
        public const string Reply = "Reply";
        public const string Approve = "Approve";
        public const string Reject = "Reject";
        public const string Assign = "Assign";
        public const string Check = "Check";
        public const string Submit = "Submit";
        public const string Close = "Close";
    }

    public class EBDCVTransitionList
    {
        public const string Save = "Save";
        public const string Copy = "Copy";
        public const string Query = "Query";
        public const string Reply = "Reply";
        public const string Approve = "Approve";
        public const string Reject = "Reject";
        public const string Assign = "Assign";
        public const string Check = "Check";
        public const string Submit = "Submit";
        public const string Close = "Close";
    }

    public class ESCCVTransitionList
    {
        public const string Save = "Save";
        public const string Copy = "Copy";
        public const string Query = "Query";
        public const string Reply = "Reply";
        public const string Approve = "Approve";
        public const string Reject = "Reject";
        public const string Assign = "Assign";
        public const string Check = "Check";
        public const string Submit = "Submit";
        public const string Close = "Close";
    }

    public class OCRTransitionList
    {
        public const string Save = "Save";
        public const string Copy = "Copy";
        public const string Query = "Query";
        public const string Reply = "Reply";
        public const string Approve = "Approve";
        public const string Reject = "Reject";
        public const string Assign = "Assign";
        public const string Check = "Check";
        public const string Submit = "Submit";
        public const string Close = "Close";
    }

    public class COTransitionList
    {
        public const string Save = "Save";
        public const string Copy = "Copy";
        public const string Query = "Query";
        public const string Reply = "Reply";
        public const string Approve = "Approve";
        public const string Reject = "Reject";
        public const string Assign = "Assign";
        public const string Check = "Check";
        public const string Submit = "Submit";
        public const string Close = "Close";
    }

    public class CVTransitionList
    {
        public const string Save = "Save";
        public const string Copy = "Copy";
        public const string Query = "Query";
        public const string Reply = "Reply";
        public const string Approve = "Approve";
        public const string Reject = "Reject";
        public const string Assign = "Assign";
        public const string Check = "Check";
        public const string Submit = "Submit";
        public const string Close = "Close";
    }

    public class EVTransitionList
    {
        public const string Save = "Save";
        public const string Copy = "Copy";
        public const string Query = "Query";
        public const string Reply = "Reply";
        public const string Approve = "Approve";
        public const string Reject = "Reject";
        public const string Assign = "Assign";
        public const string Check = "Check";
        public const string CheckMM = "CheckMM";
        public const string Submit = "Submit";
        public const string Close = "Close";
    }

    public class OCVTransitionList
    {
        public const string Save = "Save";
        public const string Copy = "Copy";
        public const string Query = "Query";
        public const string Reply = "Reply";
        public const string Approve = "Approve";
        public const string Reject = "Reject";
        public const string Assign = "Assign";
        public const string Check = "Check";
        public const string Submit = "Submit";
        public const string Close = "Close";
    }

    public class Departments
    {
        public const string OCODept = "LMC,OBA,OBB,OBD,OBR,OBS,OCO,OPM,SSM-E,EBD,ESC,";

        public const string CODDept = "BAH,BCQ,BDD,BFJ,BGD,BGS,BGX,BGZ,BHaiN,BHeB,BHeN,BHLJ,BHuB,BHuN,BIM,BJL,BJS,BJX,"
            + "BLN,BNX,BQH,BSC,BSD,BSH,BShX,BSX,BTB,BTJ,BXJ,BYN,BZJ,CCM,CCN,CCR,CCT,CCU,CCV,"
            + "CNCA,CNO,COD,CSM,CSR,CVM,I&S,ISE,KNC,KNO,MKD,NAT,PAD,SSM-D,STS,";

        public const string AllCoverdDept = "ACD,IPD,OPD,WIPD,WLBG,WLBG-CSQ,WLBG-MO,WLBG-OP,WLBG-TS,"
            + "EGS,MAD,Network,NID,NOD,PS,SBG,SBG-OBM,SBG-SDP,SBG-SSP,SBG-TS,"
            + "CBG,CBG-BDS,CBG-CSQ,CBG-MO,CBG-OP,CBG-PM,CBG-TS,FSD,IMSD,MCD,MMPD,MSD,PHS/5ESS,"
            + "EBG,"
            + "CED,GWD,TWD,WSBG,WSBG-CSQ,WSBG-MO,WSBG-OP,WSBG-PM,WSBG-PMI,WSBG-RD3G,WSBG-RD3GE,WSBG-RD3GW,WSBG-TS,WTD,WWTD,"
            + "BJO,BLD-6,CMD,PAQ,PDO,PRS,PSO,SG,";
    }
}